// Fist

ACTOR Fist : IDMWeapon // Registered as 'Fist' to ensure Fisting!-medal compatibility.
{
	Weapon.SlotNumber 1
	Weapon.PreferredSkin "FistMarine"
	Weapon.SelectionOrder 2000
	Weapon.Kickback 200
	Obituary "%o was disemboweled by %k's fist."
	Tag "Fist"
	Decal BulletChip
	Damagetype "Punch"
	+WEAPON.MELEEWEAPON
	+WEAPON.ALLOW_WITH_RESPAWN_INVUL
	States
	{
	Ready:
	  PUNG A 1 A_WeaponReady
	  Loop
	Deselect:
	  PUNG A 0 A_Lower
	  PUNG A 0 A_Lower
      PUNG A 1 A_Lower
	  Loop
	Select:
	  TNT1 A 0 A_PlaySound("weapons/wswitch",CHAN_WEAPON)
	Sloop:
	  PUNG A 0 A_Raise
	  PUNG A 0 A_Raise
	  PUNG A 1 A_Raise
      Loop
	Fire:
      PUNG B 1
      TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "Berserked")
      TNT1 A 0 A_JumpIfInventory("PowerIDMWeaponLevel2", 1, "Berserked")
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"Quad")
	Normal:
      PUNG C 1 A_CustomPunch(random(200,250), TRUE,0,"FistHitPuff",64)
      PUNG D 6
	  Goto FireEnd
	Quad:
	  TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO,1)
      PUNG C 1 A_CustomPunch(random(200,250), TRUE,0,"FistHitPuff",64)
      PUNG D 6
	  Goto FireEnd
	Berserked:
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"QuadBerserked")
      PUNG E 1 Bright A_CustomPunch(random(200,250) * 10, TRUE,0,"FistHitPuff",64,1)
	  PUNG F 6 Bright
	  Goto FireEnd
    QuadBerserked:
	  TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO,1)
      PUNG E 1 Bright A_CustomPunch(random(200,250) * 10, TRUE,0,"FistHitPuff",64,1)
	  PUNG F 6 Bright
	FireEnd:
      PUNG C 2
	  PUNG B 1
	  PUNG B 2 Offset(0,40) A_WeaponReady(WRF_NOFIRE)
	  PUNG B 2 Offset(0,36) A_WeaponReady(WRF_NOFIRE)
	  PUNG B 2 Offset(0,33) A_WeaponReady(WRF_NOFIRE)
      TNT1 A 0 A_ReFire
      Goto Ready
	}
}